//引入axios
import axios from 'axios'
//创建axios实例对象->request用于发送请求到后端
/**
 *  1.timeout: 5000 设置请求超时时间
 */
const request = axios.create({
    timeout: 5000,
    baseURL: 'http://localhost:8080',
    withCredentials: true//允许跨域
})
//request拦截器的处理
//对请求做统一处理（token,Content-Type等）
request.interceptors.request.use(config => {
    //设置token
    const token = localStorage.getItem('token');
    if(token){
        config.headers.Authorization = `Bearer${token}`//注意没有设置空格，相应的后端也不需要判断空格
    }
    config.headers['Content-Type'] = 'application/json;charset=UTF-8'
    return config;
},error => {
    return Promise.reject(error);
})

//导出request对象，在其他文件引入即可使用
export default request;

//response拦截器 在调用接口响应后统一处理响应结果
request.interceptors.response.use(response => {
    let res = response.data;
    // 如果返回的是文件
    if(response.config.responseType === 'blob'){
        return res;
    }
    // 如果返回的是字符串
    if(typeof res === 'string'){
        //如果不为空就进行转换
        res = res ? JSON.parse(res) : res
    }
    return res;
},error => {
    console.log("err=",error);
    return Promise.reject(error);
})
